package com.zzyl.nursing.domain.member;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zzyl.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;

/**
 * 预约信息表实体类
 * 对应数据库表：reservation
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("reservation") // 指定对应的数据表名
public class Reservation extends BaseEntity {

    /**
     * 主键ID（自增）
     */
    @TableId(type = IdType.AUTO) // 声明主键，指定自增策略
    private Long id;

    /**
     * 预约人姓名
     */
    @TableField("name") // 数据库字段名（与属性名一致时可省略，此处为规范显式声明）
    private String name;

    /**
     * 预约人手机号
     */
    @TableField("mobile")
    private String mobile;

    /**
     * 预约时间
     * 数据库类型：datetime，Java中用LocalDateTime映射（推荐，支持时间操作）
     */
    @TableField("time")
    private LocalDateTime time;

    /**
     * 探访人
     */
    @TableField("visitor")
    private String visitor;

    /**
     * 预约类型（0：参观预约，1：探访预约）
     */
    @TableField("type")
    private Integer type;

    /**
     * 预约状态（0：待报道，1：已完成，2：取消，3：过期）
     */
    @TableField("status")
    private Integer status;

//    /**
//     * 创建时间（非空）
//     */
//    @TableField("create_time") // 映射数据库的下划线字段（create_time）
//    private LocalDateTime createTime;
//
//    /**
//     * 更新时间（可为空）
//     */
//    @TableField("update_time")
//    private LocalDateTime updateTime;
//
//    /**
//     * 创建人ID（可为空）
//     */
//    @TableField("create_by")
//    private Long createBy;
//
//    /**
//     * 更新人ID（可为空）
//     */
//    @TableField("update_by")
//    private Long updateBy;
//
//    /**
//     * 备注（可为空）
//     */
//    @TableField("remark")
//    private String remark;
}